/*
全部项与其他项互斥的输入框
*/ 
<template>
<!-- 这里multiple 与 clearable公用一个状态，因为单选时清空不太合适。有了全部选项不建议传值为null -->
    <el-select
      v-model="selected"
      :multiple="item.multiple"
      :clearable="item.multiple"
      :collapse-tags="item.collapseTags"
      @change="handelOptionChange"
    >
      <el-option
        v-for="item in options"
        :key="item.value"
        :label="item.indexname"
        :value="item.indexcode"
      >
      </el-option>
    </el-select>
</template>
<script>
export default {
  props: {
    options: {
      type: Array,
    },
    item: {
      type: Object,
    },
  },
  data() {
    return {
      //multiple  为true时，绑定的值为数组，多选为false时绑定的值为字符串。
        selected: ["全部"]
    //   selected: "全部",
    };
  },
  methods: {
    handelOptionChange(val) {
      let len = val.length;
      if (len > 1 && val[len - 1] === "全部") {
        this.selected = ["全部"];
      } else if (len === 2 && val[0] === "全部") {
        this.selected.shift();
      }
      this.$emit("optionsChange", this.selected);
    },
  },
  created() {
    this.$emit("optionsChange", this.selected);
  },
};
</script>


